package com.efast.cafe.portal.service.company;

import java.util.List;

import com.efast.cafe.framework.pager.Pagination;
import com.efast.cafe.framework.service.ICafeService;
import com.efast.cafe.portal.bean.company.PortalCompanyPositionBean;
import com.efast.cafe.portal.bean.company.PortalCompanyPositionQueryForm;
import com.efast.cafe.portal.bean.company.PortalCompanyPositionRoleBean;
import com.efast.cafe.portal.entity.company.PortalCompanyPosition;
import com.efast.cafe.portal.entity.company.PortalCompanyUserReporttoTreeDto;
import com.efast.cafe.portal.remote.company.PortalCompanyPositionService;

/**
 * ****************************************************************************
 * 
 * @File name : PortalCompanyPositionService.java
 *
 * @Author : bbqu
 *
 * @Date : 2016-8-16
 *
 * @Copyright Notice: Copyright (c) 2016 Efast Serv. All Rights Reserved. This
 *            software is published under the terms of the Efast Software
 *            License version 1.0, a copy of which has been included with this
 *            distribution in the LICENSE.txt file.
 * 
 * 
 *            ------------------------------------------------------------------
 *            ---------- Date Who Version Comments 2016-8-16 下午1:50:37 bbqu 1.0
 *            Initial Version
 ****************************************************************************
 */
public interface IPortalCompanyPositionService extends PortalCompanyPositionService,ICafeService<PortalCompanyPosition>{
	/**
	 * 通过OrgId查询职位
	 * 
	 * @Date : 2016-8-16
	 * @param portalCompanyOrgId
	 * @return
	 */
	public List<PortalCompanyPosition> queryPositionByOrgId(Long portalCompanyOrgId);

	/**
	 * 分页查询
	 * 
	 * @Date : 2016-8-16
	 * @param portalCompanyPosition
	 * @return
	 */
	public Pagination<PortalCompanyPositionBean> querylistPosition(
			PortalCompanyPositionQueryForm portalCompanyPositionQueryForm);

	/**
	 * 通过id删除position
	 * 
	 * @Date : 2016-8-16
	 * @param portalCompanyOrgId
	 */
	public void delPosutionById(Long portalCompanyPositionId);

	/**
	 * 通过id查询
	 * 
	 * @Date : 2016-8-16
	 * @param portalCompanyOrgId
	 * @return
	 */
	public PortalCompanyPosition queryPositionById(Long portalCompanyPositionId);

	/**
	 * 修改
	 * 
	 * @Date : 2016-8-16
	 * @param portalCompanyPosition
	 */
	public void updatePosition(PortalCompanyPositionRoleBean portalCompanyPosition);

	/**
	 * 删除
	 * 
	 * @Date : 2016-8-16
	 * @param portalCompanyPosition
	 * @return
	 */
	public Long insertPosition(PortalCompanyPositionRoleBean portalCompanyPosition);

	public int listUserByPositionId(Long portalCompanyPositionId);

	/**
	 * 获取当前用户默认职位
	 * 
	 * @Date : 2016年11月9日
	 * @return
	 */
	public PortalCompanyPosition getCurrentUserPosition();

	/**
	 * 根据组织id查询职位信息
	 * @param orgId
	 * @return List<PortalCompanyPosition>
	 * @Author Administrator
	 * @Date 2017年9月26日
	 */
	public List<PortalCompanyPositionBean> queryPositionOrgId(Integer orgId);

	
	/**
	 *  获取当前公司结构树
	 * @Date        :     
	 * @return
	 */
	public List<PortalCompanyUserReporttoTreeDto> getCompanyTree();

	/**
	 *  获取节点以下
	 * @Date        :     
	 * @return
	 */
	public List<PortalCompanyUserReporttoTreeDto> getLowerList(PortalCompanyUserReporttoTreeDto thisDto);


}
